// 给定整数x，判断x是否是回文数，要求不能用整数转为字符串的方式来解决这个问题

// 解题思路
// 1. 负数，10的倍数都不是回文数，可以直接排除
// 2. 然后将原数按位取余，并按位反转，若与原数完全相等，则原数为回文数
// 其实第二步在反转到一半的时候，就可以判断了，因为原数是回文数，那么在反转到中间的时候，留下的前半部分，应该与转换好的后半部分倒转过来相等
function isPalindrome(x) {
    if (x < 0 || (x % 10 === 0 && x !== 0)) {
        return false
    }
    let res = 0
    while (x > res) {
        res = res * 10 + x % 10
        x = Math.floor(x / 10)
    }
    return x === res || x === Math.floor(res / 10)
}

let x = 12321
console.log(isPalindrome(x))